<?php
declare(strict_types = 1);
namespace app\common\business;
use app\common\lib\ClassArr;
use app\common\lib\Num;
class Sms {
    public static function sendCode(string $phoneNumber, int $len, string $type = 'ali') :bool{
        $code = Num::getCode($len);
        // 工厂模式
//        $type = ucfirst($type);
//        $class = 'app\common\lib\sms\\'.$type.'Sms';
//        $sms = $class::sendCode($phoneNumber, $code);

        //
        $classStats = ClassArr::smsClassStat();
        $classObj = ClassArr::initClass($type, $classStats, [], false);
        $sms = $classObj::sendCode($phoneNumber, $code);

//        $sms = true;
        if ($sms) {
            // 需要把短信验证码记录到redis，并且需要给一个失效时间 1分钟
            // 1.我们有php的redis扩展, win redis.dll linux redis.so
            // 2.redis服务
            cache(config('redis.code_pre').$phoneNumber,$code,config('redis.code_expire'));
        }
        return $sms;
    }
}